有人建议我将 ORM 用于我正在设计的项目,但我无法找到有关它是什么或它如何工作的信息。
谁能给我简要解释一下什么是 ORM,它是如何工作的,以及我应该如何开始使用它?
对象关系映射(ORM) 是一种技术,可让您使用面向对象的范例从数据库中查询和操作数据。在谈论 ORM 时,大多数人指的是实现对象关系映射技术的库,因此有“一个 ORM”这个短语。
ORM 库是用您选择的语言编写的完全普通的库,它封装了操作数据所需的代码,因此您不再使用 SQL;您可以使用与您使用的语言相同的语言直接与对象进行交互。
例如,这是一个完全虚构的使用伪语言的案例:
你有一个书类,你想检索作者是“Linus”的所有书。手动,你会做这样的事情:
book_list = new List(); sql = "SELECT book FROM library WHERE author = 'Linus'"; data = query(sql); // I over simplify ... while (row = data.next()) { book = new Book(); book.setAuthor(row.get('author'); book_list.add(book); }
使用 ORM 库,它看起来像这样:
book_list = BookTable.query(author="Linus");
机械部分通过 ORM 库自动处理。
使用 ORM 可以节省大量时间,因为:
使用 ORM 库更灵活,因为:
但是 ORM 可能会很痛苦:
for
嗯,用一个。无论您选择哪个 ORM 库,它们都使用相同的原则。这里有很多 ORM 库:
如果您想在 Web 编程中尝试使用 ORM 库,最好使用整个框架堆栈,例如:
不要尝试编写自己的 ORM,除非您想学习一些东西。这是一项巨大的工作,旧的需要花费大量时间和工作才能变得可靠。